package com.lyl.mysqlmonitor.callback;

/**
 * 索引分析回调接口
 * 用于将索引分析结果传递给外部系统
 */
public interface IndexAnalysisCallback {
    
    /**
     * 当SQL分析开始时调用
     * @param sql 要分析的SQL语句
     */
    default void onAnalysisStart(String sql) {
        // 默认空实现
    }
    
    /**
     * 当SQL分析完成时调用
     * @param sql 原始SQL语句
     * @param analysisResult 分析结果（JSON字符串或详细分析报告）
     * @param isJson 是否为JSON格式结果
     */
    void onAnalysisComplete(String sql, String analysisResult, boolean isJson);
    
    /**
     * 当SQL分析发生错误时调用
     * @param sql 原始SQL语句
     * @param errorMessage 错误信息
     * @param exception 异常对象
     */
    default void onAnalysisError(String sql, String errorMessage, Throwable exception) {
        // 默认空实现
    }
} 